<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>AJAX GET 请求</title>
    <style>
      #result {
        width: 200px;
        height: 100px;
        border: solid 1px purple;
      }
    </style>
  </head>
  <body>
    <button>点击发送请求</button>
    <div id="result"></div>

    <script>
      //获取button元素
      const btn = document.getElementsByTagName("button")[0];
      btn.onclick = function () {
        //1.创建对象
        const xhr = new XMLHttpRequest();
        //网络控制台上的XHR（对AJAX请求做筛选）

        //2.初始化，设置请求方法和url
        //第一个参数发送什么类型的请求，第二个是给谁发
        xhr.open("GET", "http://127.0.0.1:8000/server");

        //3.发送请求过去
        xhr.send();

        //4.事件绑定 处理服务端返回的结果
        // readystate 是 xhr 对象中的属性，表示状态
        //分别是 0 1 2 3 4
        //0表示为初始化
        xhr.onreadystatechange = function () {
          //判断服务端是否返回所有结果
          if (xhr.readyState === 4) {
            // 判断响应状态码 200 404 403 401 500
            // 状态码中2开头的都算成功
            if (xhr.status >= 200 && xhr.status < 300) {
              //处理结果
              //1.响应行
              console.log(xhr.status); //状态码
              console.log(xhr.statusText); //状态字符串
              console.log(xhr.getAllResponseHeaders()); //所有响应头
              console.log(xhr.response); //响应体

              //2，接收结果
              result.innerHTML = xhr.response;
            }
          }
        };
      };
    </script>
  </body>
</html>
  